projects
/
gtk4.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
db55f8a
)
widget: Keep a widget reference around _gtk_widget_run_controllers()
author
Carlos Garnacho
<carlosg@gnome.org>
Tue, 6 May 2014 13:25:31 +0000
(15:25 +0200)
committer
Carlos Garnacho
<carlosg@gnome.org>
Fri, 23 May 2014 17:54:29 +0000
(19:54 +0200)
The widget may be destroyed within the loop, in reaction to the signals
sent by the controllers. Protect against that.
gtk/gtkwidget.c
patch
|
blob
|
history
diff --git
a/gtk/gtkwidget.c
b/gtk/gtkwidget.c
index 8e8d66325d5d2102239530e7b9812cbdf9c95851..6d9c17f7a57f449fdee321e2ea89c1a968f0a041 100644
(file)
--- a/
gtk/gtkwidget.c
+++ b/
gtk/gtkwidget.c
@@
-7210,6
+7210,7
@@
_gtk_widget_get_controllers_evmask (GtkWidget *widget)
GList *l;
priv = widget->priv;
+ g_object_ref (widget);
for (l = priv->event_controllers; l; l = l->next)
{
@@
-7240,6
+7241,8
@@
_gtk_widget_run_controllers (GtkWidget *widget,
handled |= gtk_event_controller_handle_event (data->controller, event);
}
+ g_object_unref (widget);
+
return handled;
}